# _*_ coding: UTF-8 _*_
# @Time     : 2021/10/20 15:05
# @Author   : Zheng Luming
# @Site     : http://www.hzdledu.cn/
# @File     : 变量.py
# @Software : PyCharm

# 变量
# 1.实质是指向数据的内存地址
# 2.简单理解为存放数据的容器，比如杯子或柜子

# 定义变量
# 格式：变量名 = 值     eg:  a = 10
# 不要用内置函数或模块做变量名

a = 10
print(type(a))
a = '草'
print(type(a))  # type（） 可以获取对象的数据类型
print('---------')

# 对变量重新赋值实际是改变变量的指向内存地址
a = 10
print(id(a))
a = '草'
print(id(a))
print('---------')

# 将变量赋值给变量，将内存地址给另一个变量
a = 11
b = a
print(id(a))
print(id(b))
print('---------')

# 数据类型
# 1.int整数：没有小数点的数值
# 2.float浮点数：有小数的数值
# 3.bool布尔类型：True,False   , True为真，False为假
# 4.字符串 '' 或“”  或 ''' , ''' 或 “”“ ， ”“”：一串字符

a = 10
print(type(a))

b = 1.0
print(type(b))

c = True
print(type(c))

d = 'af'
print((type(d)))
print('---------')

print('He said"hello"')

print('---------')

# 转义字符
print('\\')
print('\'')
print('\"')
print('\n')
print(r'c\temp') # r 表示禁止转义

print('---------')

# 数据类型转换
# int()     将其他的数据类型转化为整数。针对字符串，不能转换含有非数字字符的字符串
a = 1.1     # 结果为：1
b = True    # 结果为：1
c = '1111'  # 结果为：1111
d = 'abcd'  # 报错
print('---------')

# float()
a = 1       # 结果为：1.0
b = True    # 结果为：1.0
c = '1111'  # 结果为：1111.0
d = 'abcd'  # 报错
print('---------')

# bool()    #非零非空都是True
a = 0       # False
b = 1.1     # True
c = 'abcd'  # True
d = ''      # False
print('---------')

# str()
a = 0       # '0'
b = 1.1     # '1.1'
c = True    # 'True'

# 格式化字符串
# 1.占位符格式化字符串
name = '蕾姆'
age = 18
print('我的名字是：%s,我的年龄是：%d岁'%(name,age))
# 常用占位符  %s  %d   %10d 指定宽度    %010d 空格补0
print('我的名字是：%s,我的年龄是：%10d岁'%(name,age))
print('我的名字是：%s,我的年龄是：%010d岁'%(name,age))
pi = 3.141592653
print('π的值是：%10f'%(pi))   # 浮点数默认6位小数
print('π的值是：%10.8f'%(pi)) # .8   表示8为小数
print('π的值是：%-10f'%(pi))  # 负号  左对齐

# 2. f''格式化字符串
print('------------')
name = '吴京'
age = 43
print(f'我的名字是：{name},我的年龄是：{age}')
# 指定宽度 为10位
print(f'我的名字是：{name},我的年龄是：{age:10}岁')
# 指定小数位数
pi = 3.141592653
print(f'π的值是：{pi:10.8f}')
# 补零
print(f'π的值是：{pi:010.8f}')
# 左对齐
print(f'π的值是：{pi:<010f}') #对齐后，补零在后方